\documentclass[hyperref,UTF8]{ctexart}
\usepackage{hyperref}

\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{enumerate}
\usepackage{geometry}
\geometry{a4paper,scale=0.72}
\setlength\headwidth{\textwidth}

\usepackage{graphicx}
\usepackage{listings}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mathtools}
\ctexset{section={format={\Large\bfseries}}}

\title{Programming assignments 1.8.2}


\author{邵盛栋 \\ 信息与计算科学 3200103951}

\begin{document}
	\maketitle
	\section*{程序设计报告}
	\begin{enumerate}[A]
		\item 由王老师上课所提供的框架，实现对二分法、牛顿法与割线法三种方法类的定义，并构建函数的类，得到本次作业中最关键的EquationSolver.h头文件，以便在后面的题目中随时调用。
		\item 本题要求在以下四个函数中测试二分法的实现：
		\begin{enumerate}[$\bullet$]
			\item $ x^{-1}-\tan x \text{ on } [0,\frac{\pi}{2}] $
			\item $ x^{-1}-2^{x} \text{ on } [0,1] $
			\item $ 2^{-x}+e^{x}+2\cos x-6 \text{ on } [1,3] $
			\item $ (x^{3}+4x^{2}+3x+5)/(2x^{3}-9x^{2}+18x-2) \text{ on } [0,4] $
		\end{enumerate}
		以上函数均已在程序中定义，编译并运行questionB.cpp后可得到如下输出：
		\begin{verbatim}
			The roots of the four functions are: 0.860334 0.641186 1.82938 0.117877
			The corresponding f(c) is: 0 0 0 -1.21841e+16
		\end{verbatim}
		由结果可知对于前三个函数，二分法能够顺利得到对应的解，而第四个函数利用二分法无法得到正确的解，其原因是函数$ (x^{3}+4x^{2}+3x+5)/(2x^{3}-9x^{2}+18x-2) $在$ [0,4] $上并不是连续的，即不满足二分法中$ f\in C[a,b] $这一条件。
		\item 本题要求提供求解$ x=\tan x $来测试牛顿法，找到4.5和7.7附近的解，编译并运行questionC.cpp后可得到如下输出：
		\begin{verbatim}
			The roots around 4.5 and 7.7 are: 4.49341 7.72525
		\end{verbatim}
		4.49341，7.72525即为所需求的解。
		\item 本题需要通过以下三个函数和初始值测试割线法，并取不同的初始值比较结果有和不同以及考虑原因。
		\begin{enumerate}[$\bullet$]
			\item $ \sin \frac{x}{2}-1 \text{ with } x_{0}=0,x_{1}=\frac{\pi}{2} $
			\item $ e^{x}-\tan x \text{ with } x_{0}=1,x_{1}=1.4 $
			\item $ x^{3}-12x^{2}+3x+1 \text{ with } x_{0}=0,x_{1}=-0.5 $
		\end{enumerate}
		编译并运行questionD.cpp后可得到如下输出：
		\begin{verbatim}
			The results generated by the first function with different initial values
			are: 3.14159 3.14159 f(root) are: -1.11022e-16,-1.11022e-16
			The results generated by the second function with different initial values 
			are: 1.30633 -3.72374 f(root) are: -4.44089e-16,0.682383
			The results generated by the third function with different initial values 
			are: -0.188685 0.451543 f(root) are: 0,2.22045e-16
		\end{verbatim}
		第二个函数所得结果不同的原因可能是该函数在我所选择的初始值范围内不满足$ f\in C^{2} $这一条件；第三个函数所得结果不同的原因是该函数在这两个不同的初始值范围内分别存在一个解。
		\item 本题通过所给已知量和公式：
		\[V=L\left[0.5 \pi r^2-r^2 \arcsin \frac{h}{r}-h\left(r^2-h^2\right)^{\frac{1}{2}}\right]\]
		可列出相应方程，利用三种方法可求方程的解，编译并运行questionE.cpp后可得到如下输出：
		\begin{verbatim}
			The root obtained by the bisection method is: 0.164062 The  f(root) is: 
			-0.0414932
			The root obtained by Newton's method is: 0.166166 The  f(root) is: 0
			The root obtained by the secant method is: 0.166164 The  f(root) is: 
			-3.88021e-05
		\end{verbatim}
		则求得h约为0.17ft,所以水的深度为0.83ft。
		\item 本题方程为：
		\[ A \sin \alpha \cos \alpha+B \sin ^2 \alpha-C \cos \alpha-E \sin \alpha=0 \]
		其中A,B,C,D在题中均已给出具体数值。
		\begin{enumerate}
			\item 本小题需要用牛顿法验证$ \alpha\approx33° $,运行结果为：
			\begin{verbatim}
				The obtained angle alpha is: 32.9722 f(root)=0
			\end{verbatim}
			\item 本小题只需将第一小题中的D改为30in，运行结果为：
			\begin{verbatim}
				The obtained angle alpha is: 33.1689 f(root)=0
			\end{verbatim}
			\item 本小题利用割线法查找$ \alpha $,并取一组距离33°很远的初始值进行对比，运行结果为：
			\begin{verbatim}
				When the initial value is close to 33: alpha=32.9722 f(root)=0
				When the initial value far away from 33: alpha=147.028 f(root)=0
			\end{verbatim}
			结果得到了两个不同的解，其原因是该方程在$ [0,\pi] $上不止一个解，所以当初始值在其他解附近时会得到不同的解。
		\end{enumerate}
	\end{enumerate}
	\section*{编译说明}
		输入make产生可执行文件，再执行./run直接得到输出结果。
	
	
\end{document}
